//===============================================================================
// Microsoft patterns & practices
// Web Client Software Factory
//===============================================================================
// Copyright  Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.ObjectBuilder;
using Microsoft.Practices.CompositeWeb;
using WCSFContrib.ECommerceCatalog.BusinessEntities;
using WCSFContrib.ECommerceCatalog.BusinessEntities.Enums;
using System.Web.Security;

namespace WCSFContrib.ECommerceCatalog.Admin.Views
{
    public class DefaultViewPresenter : Presenter<IDefaultView>
    {
        private IAdminController _controller;

        public DefaultViewPresenter([CreateNew] IAdminController controller)
        {
            _controller = controller;
        }

        public override void OnViewLoaded()
        {
            LoadOrders();
            LoadUsers();
        }

        private void LoadOrders()
        {
            ICollection<Order> orders = _controller.GetOrders();

            View.ShowOrders(orders);
            View.TotalOrdersCount = orders.Count;
        }

        private void LoadUsers()
        {
            MembershipUserCollection users = Membership.GetAllUsers();

            View.ShowUsers(users);
        }

        public void OnEditOrder(Order order)
        {
            _controller.UpdateOrderStatus(order);

            LoadOrders();
        }
    }
}
